/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package com.marlboroug.authors;

import com.marlboroug.entity.Authors;
import java.util.List;
import javax.ejb.Remote;


@Remote
public interface AuthorsManagerRemote {
    
    /** Permet de créer un auteur
     * 
     * @param author Envoie un objet de type auteur
     * @return Un boolean pour confirmer la création
     */
    boolean create (Authors author);

    /** Permet de supprimer un auteur
     * 
     * @param ID_authors Envoie un ID d'un auteur
     * @return Un boolean pour confirmer la suppression
     */
    boolean delete (Long ID_authors);

    /** Permet de retourner un objet Authors en fonction d'un ID
     * 
     * @param ID_authors Un ID d'un auteur
     * @return Un objet auteur
     */
    Authors find (Long ID_authors);

    /** Permet de mettre à jour un auteur
     * 
     * @param author Envoie un objet auteur
     * @return Un boolean pour confirmer la modification
     */
    boolean update (Authors author);
    
    /** Permet de retourner une liste d'auteurs en fonction d'un mot clés
     * 
     * @param pattern Un mot clés
     * @return Une liste d'auteurs
     */
    List<Authors> retrieveByName (String pattern);
    
    /** Permet de retourner un auteur en fonction d'un nom
     * 
     * @param pattern Un nom
     * @return Un auteur
     */
    List<Authors> findCreateAuthor (String pattern);
    
    /** Permet de retourner une liste des auteurs
     * 
     * @return Une liste d'auteurs
     */
    List<Authors> findAll ();
    
}
